package chap5.Map_接口;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

/**
 * Create by IntelliJ IDEA
 *
 * @author: banana
 * @date-Time: 2018/4/27 8:10
 *  HashMao集合添加元素、遍历
 * @description:
 */
public class Task11 {
  public static void main(String[] args){
    /*1、创建HashMap对象
      2、添加元素
      3、遍历（2种方法）
    * */
    HashMap<Integer,String>stringHashMap=new HashMap<Integer,String>();
    stringHashMap.put(1,"张三");
    stringHashMap.put(1,"李四");
    stringHashMap.put(2,"王五");
    stringHashMap.put(3,"王五");
    /*遍历方式1：键找值
    *        1）获取所有键的集合
    *        2）遍历键的集合，得到每一个值
    *        3）根据键到集合中去找值*/
    //得到的是所有键的集合的迭代器
    Iterator iterator=stringHashMap.keySet().iterator();
    while(iterator.hasNext()){
      //循环得到每一个键
      Integer key=(Integer)iterator.next();
      //根据键来获取值
      String value=stringHashMap.get(key);
      System.out.println(key+":"+value);
    }
    /*遍历方式2：键值对对象找键和值（集合中元素多的时候，效率高）
    *        1）获取所有的键值对对象的集合
    *        2）遍历键值对对象的集合，获取每一个键值对对象
    *        3）根据键值对对象去获取键和值*/
    Iterator entryIterator=stringHashMap.entrySet().iterator();
    while(entryIterator.hasNext()){
      //循环的到的是每一对键值对对象
      Map.Entry<Integer,String> entry = (Entry<Integer,String>) entryIterator.next();
      Integer key=entry.getKey();
      String value=entry.getValue();
      System.out.println(key+"--"+value);
    }
  }

}
